import api from '../index'

/**
 * 广告信息接口定义
 */
export interface Advertisement {
  advertisementId: number
  advertisementName: string
  advertisementNameEn: string
  advertisementTitle: string
  advertisementTitleEn: string
  advertisementDescribe: string
  advertisementDescribeEn: string
  advertisementUrl: string
  typeName: string
  typeNameEn: string
  createdAt: string
  updatedAt: string
  advertisementHttp: string
  status: number
}

export default {
  /**
   * 获取广告列表
   * @param data - 查询参数
   * @param data.advertisementName - 可选，按广告名称模糊查询
   * @returns 广告列表数据
   */
  list: (data: { advertisementName?: string }) => api.get(`/system/advertisement/list`, {
    params: {
      advertisementName: data.advertisementName,
    },
  }),

  /**
   * 获取广告详情
   * @param id - 广告ID
   * @returns 广告详情数据
   */
  detail: (id: number | string) => api.get<Advertisement>(`/system/advertisement/getInfo`, {
    params: {
      advertisementId: id,
    },
  }),

  /**
   * 创建广告
   * @param data - 广告数据
   * @param data.advertisementName - 广告名称（必填）
   * @param data.advertisementNameEn - 广告英文名称（必填）
   * @param data.advertisementTitle - 广告标题（必填）
   * @param data.advertisementTitleEn - 广告英文标题（必填）
   * @param data.advertisementDescribe - 广告描述（必填）
   * @param data.advertisementDescribeEn - 广告英文描述（必填）
   * @param data.advertisementUrl - 广告图片URL（必填）
   * @param data.typeName - 类型名称（必填）
   * @param data.typeNameEn - 类型英文名称（必填）
   * @param data.advertisementHttp - 广告链接（必填）
   * @param data.status - 状态（必填）
   * @returns 创建结果
   */
  create: (data: Advertisement) => api.post('/system/advertisement/add', data, {
  }),

  /**
   * 编辑广告
   * @param data - 广告数据
   * @param data.advertisementId - 广告ID（必填）
   * @param data.advertisementName - 广告名称（必填）
   * @param data.advertisementTitle - 广告标题（必填）
   * @param data.advertisementDescribe - 广告描述（必填）
   * @param data.advertisementUrl - 广告图片URL（必填）
   * @returns 编辑结果
   */
  edit: (data: Advertisement) => api.post('/system/advertisement/edit', data, {
  }),

  /**
   * 删除广告
   * @param id - 要删除的广告ID
   * @returns 删除结果
   */
  delete: (id: number | string) => api.get(`/system/advertisement/del`, {
    params: {
      advertisementId: id,
    },
  }),

  /**
   * 上传广告图片
   * @param file - 要上传的图片文件
   * @returns 上传结果包含图片URL
   */
  uploadAvatar: (file: any) => api.post(`/common/uploadAvatar`, file, {
    headers: {
      'Content-Type': 'multipart/form-data',
    },
  }),
}
